<?php
$etat = 'index';
//gestion des catégories
if(isset($_GET['action']))
{
    if($_GET['action'] == 'ajouter')
    {
        $etat = 'ajouter';
    }

    if($_GET['action'] == 'modifier' && isset($_GET['id']))
    {
        $etat = 'modifier';
    }

    if($_GET['action'] == 'supprimer' && isset($_GET['id']))
    {
        $etat = 'supprimer';
    }
}

switch($etat)
{
    case 'index':
        $categories = $categoriemap->getAll();
        break;
    case 'supprimer':
        $categoriesupprimee = $categoriemap->getOne(html($_GET['id']));
        $categoriemap->delete($categoriesupprimee);
        echo 'Catégorie supprimée<br/>';
        //redirige vers la liste des categories
        echo '<a href="index.php?target=categories">Retour</a>';
        break;
    case 'modifier':
        $categoriemodifiee = $categoriemap->getOne(html($_GET['id']));
    case 'ajouter':
        $form = new Formulaire('categorie', '#', 'POST');

        $form->addAttribut('id', 'categorie_form');
        //$idcategorie = new ChampText('idcategorie', 'Identifiant', true);
        $libelle = new ChampText('libellecategorie', 'Libellé', true);
        $submit = new ChampSubmit('submit', 'Valider');
        $submit->addAttribut('class', 'button');

        //validateurs
        //$idvalidateur = new ValidateurText(20);
        $libellevalidateur = new ValidateurText(50);
        //$idcategorie->addValidateur($idvalidateur);
        $libelle->addValidateur($libellevalidateur);

        //si modification on charge les valeurs de la catégorie
        if(isset($categoriemodifiee) && !is_null($categoriemodifiee))
        {
            $libelle->setValeur($categoriemodifiee->getNom());
            $libelle->addAttribut('value', $categoriemodifiee->getNom());
        }

        //$form->addChamp($idcategorie);
        $form->addChamp($libelle);
        $form->addChamp($submit);

        if(isset($_POST['formid']) && !empty($_POST['formid']) )
        {
            //formulaire soumis on recharge les valeurs et on valide le formulaire
            //$idval = html($_POST['idcategorie']);
            $form->bind();

            if($form->valider() )
            {
                //ajout de la catégorie à la base
                $nouvelle = new Model_Categorie();

                //modification ou ajout
                if(isset($categoriemodifiee) && !is_null($categoriemodifiee))
                {
                    $nouvelle->setId_categorie($categoriemodifiee->getId_categorie());
                }
                else
                {
                    $nouvelle->setId_categorie(-1);
                }
                
                $nouvelle->setNom($libelle->getValeur());
                $categoriemap->save($nouvelle);
                echo "Opération effectuée<br/>";
                //redirige vers la liste des categories
                echo '<a href="index.php?target=categories">Retour</a>';
            }
            else
            {
                echo "Erreurs</br>";
                foreach($form->getChamps() as $champ)
                {
                    if($champ->isvalid == false)
                    {
                        echo $champ . ' : <br/>';

                        foreach($champ->getErreurs() as $erreur)
                        {
                            echo $erreur . '<br/>';
                        }
                    }
                }

                echo $form->render();
            }
        }
        else
        {
            echo $form->render();
        }
        break;
}
?>
<?php if($etat == 'index'): ?>
<table>
    <thead>
        <th>Id</th>
        <th>Libellé</th>
    </thead>
    <tbody>
        <?php foreach($categories as $categorie): ?>
        <tr>
            <td><?php echo $categorie->getId_categorie()?></td>
            <td><?php echo $categorie->getNom()?></td>
            <td><a href="index.php?target=categories&action=modifier&id=<?php echo $categorie->getId_categorie()?>">Modifier</a></td>
            <td><a href="index.php?target=categories&action=supprimer&id=<?php echo $categorie->getId_categorie()?>">Supprimer</a></td>
        </tr>
        <?php endforeach ?>
    </tbody>
</table>
<a href="index.php?target=categories&action=ajouter">Ajouter</a>
<?php endif;?>